//   routes/users.js 的路由处理函数


const jwt = require ('jsonwebtoken')

// 导入数据库操作器
const { UserModel,PersonModel } = require ('../db/model')

// 倒入配置信息 
const { secret, expires } = require ('../config')





// 登录操作
const login = async (req, res) => {
// 代码来到这里说明username和password一定存在且符合格式
// 1.拿到用户名和密码
const {username , password} = req.body

// 2.去到数据库比对 因为遥控器是异步的所以要 async和await
 const result = await UserModel.findOne ({username,password})

 


//  3.判断登陆失败
 if(!result) return res.send({
     code:0,
     message: '登录失败'
 })

//  4.登陆成功创建一个token
// 用_id是因为从数据库中查询出来就是下划线id
// 加Bearer的原因
const token =  'Bearer '+jwt.sign({id:result._id}, secret, { expiresIn: expires } )


//  5.返回登陆成功的信息给前端
res.send({
    code:1,
    message:'登陆成功',
    token,
    user_id:result._id
})

//  如果没有找到就是null
// 如果找到了result就是用户信息

// UserModel({
//  username: 'admin',
//  password: '123456',
//  nickname: '管理员',
//  age:18
// }).save()
 

}


// 获取用户个人信息
const info = async (req, res) => {
 const { id } = req.params

//  根据id获取个人信息
const result = await UserModel.findById(id)

// console.log(result)

// 返回给前端
res.send({
    code: 1,
    message: '获取个人信息成功',
    info: {
        id: result._id,
        nickname: result.nickname,
        username: result.username,
        age: result.age,
        gender: result.gender,
        avatar: result.avatar,
        desc:result.desc
    } 
})

}






module.exports = {
    login,
    info
}